var https = require('https');
var http = require('http');
let cheerio = require('cheerio');

exports.spider = function (app) {
  // 爬取公式
  // https
  function loadPage(url) {
    var pm = new Promise(function (resolve, reject) {
      https.get(url, function (res) {
        var html = '';
        res.on('data', function (d) {
          html += d.toString()
        });
        res.on('end', function () {
          resolve(html);
        });
      }).on('error', function (e) {
        reject(e)
      });
    });
    return pm;
  }
  // http
  function loadPageHttp(url) {
    var pm = new Promise(function (resolve, reject) {
      http.get(url, function (res) {
        var html = '';
        res.on('data', function (d) {
          html += d.toString()
        });
        res.on('end', function () {
          resolve(html);
        });
      }).on('error', function (e) {
        reject(e)
      });
    });
    return pm;
  }

  // 爬取png图片
  app.post('/spider', (req, res) => {
    let word = encodeURI(req.body.word)
    var url = `https://www.easyicon.net/iconsearch/${word}/${req.body.int}/?m=yes&f=_all&s=addtime_DESC`;
    loadPage(url).then(function (d) {
      let imgAll = [];
      $ = cheerio.load(d);
      $(".icon_img").each(function (index) {
        // 获取图片的链接
        let img = $('.icon_img>a>img').eq(index).attr('src');
        // 获取图片详情页的链接
        let imgUrl = $('.icon_img>a').eq(index).attr('href');
        if (img !== undefined) {
          imgAll.push({
            index,
            img,
            imgUrl
          });
        }
      })
      res.json({
        code: 'S0001',
        imgAll
      })
    });
  })

  // 爬取图片详情页
  app.post('/spiderGetUrl', (req, res) => {
    var url = `https://www.easyicon.net${req.body.url}`;
    loadPage(url).then(function (d) {
      let urlList = [];
      $ = cheerio.load(d);
      $("td").each(function (index) {
        // 获取图片的链接
        let img = $('td>img').eq(index).attr('src');
        let imgUrl = `https://www.easyicon.net${img}`;
        // 图片大小
        let spanPx = $('td>span').eq(index).html();
        if (img !== undefined) {
          urlList.push({
            index,
            imgUrl,
            spanPx
          });
        }
      })
      res.json({
        code: 'U0001',
        urlList
      })
    });
  })

  // 爬取小说内容
  app.post('/getNovel', (req, res) => {
    let novelText = encodeURI(req.body.novelText)
    var url = `http://search.zongheng.com/s?keyword=${novelText}`;
    loadPageHttp(url).then(function (d) {
      let novelAll = [];
      $ = cheerio.load(d);
      $(".clearfix").each(function (index) {
        // 小说的详情页链接
        let novelHref = $('.imgbox>a').eq(index).attr('href');
        // 小说的封面
        let novelImg = $('.imgbox>a>img').eq(index).attr('src');
        // 小说的名字
        let novelText = $('.se-result-infos>h2>a').eq(index).html();
        // 小说作者
        let novelAuthor = $('.bookinfo>a').eq(index).html();
        // 小说简介
        let novelMedium = $('.se-result-infos>p').eq(index).html();
        if (novelHref && novelText) {
          novelAll.push({
            id: index,
            novelHref,
            novelImg,
            novelText,
            novelAuthor,
            novelMedium
          });
        }
      })
      res.json({
        code: 'U0001',
        novelAll
      })
    });
  })

  // 爬取小说章节
  app.post('/getnovelFont', (req, res) => {
    var url = req.body.novelUrl;
    loadPageHttp(url).then(function (d) {
      $ = cheerio.load(d);
      let urlAll = $('.all-catalog').attr('href');

      loadPageHttp(urlAll).then(function (d) {
        let novelFontAll = [];
        $ = cheerio.load(d);
        $(".col-4").each(function (index) {
          // 创建一个数组
          let novelFontObj = {}
          // 小说章节
          novelFontObj.novelText = $('.col-4>a').eq(index).html();
          // 小说章节链接
          novelFontObj.novelUrl = $('.col-4>a').eq(index).attr('href');
          novelFontAll.push(novelFontObj)
        })
        res.json({
          code: 'F0001',
          novelFontAll
        })
      });
    });
  })

  // 爬取小说章节的主要内容
  app.post('/getReader', (req, res) => {
    var url = req.body.url;
    loadPageHttp(url).then(function (d) {
      $ = cheerio.load(d);
      // 章节的标题
      let novelTitle = $('.title_txtbox').html();
      // 章节的所有内容
      let novelText = $('.reader_box .content').html();
      // 所有章节的链接
      let novelUrl = $('.chapterList').attr('href');
      res.json({
        code: 'T0001',
        novelTitle,
        novelText,
        novelUrl
      })
    });
  })

  // 爬取小说轮播图
  app.post('/getCarousel', (req, res) => {
    let url = 'http://www.zongheng.com/'
    loadPageHttp(url).then(function (d) {
      // 总数组
      let CarouselAll = {}

      let Carousel = [];
      $ = cheerio.load(d);
      // 获取轮播图
      $(".swiper-item").each(function (index) {
        // 创建一个数组
        let CarouselObj = {}
        // 轮播图封面
        CarouselObj.CarouselText = $('.swiper-item>a>img').eq(index).attr('src');
        // 轮播图详情页链接
        CarouselObj.CarouselUrl = $('.swiper-item>a').eq(index).attr('href');
        if (Carousel.length < 5) {
          Carousel.push(CarouselObj)
        }
      })

      // 获取新书
      let NewNovel = []
      $(".mind-book").each(function (index) {
        // 创建一个数组
        let novelObj = {}
        // 新书的封面
        novelObj.novelImg = $(".mind-book .imgbox>a>img").eq(index).attr('src');
        // 新书的名字
        novelObj.novelName = $('.mind-book .bookname>a').eq(index).html();
        // 新书的简介
        novelObj.novelContent = $('.mind-book .info').eq(index).html();
        // 新书的作者
        novelObj.novelAuthor = $('.mind-book .author>a').eq(index).html();
        // 新书的分类
        novelObj.cate = $('.mind-book .cate').eq(index).html();
        // 新书的详情页
        novelObj.newUrl = $('.mind-book .imgbox>a').eq(index).attr('href');
        NewNovel.push(novelObj)
      })

      CarouselAll.Carousel = Carousel;
      CarouselAll.NewNovel = NewNovel;
      res.json({
        code: 'F0001',
        CarouselAll
      })
    });
  })

  // 获取主页新书
  app.post('/getNewNovel', (req, res) => {
    var url = 'http://book.zongheng.com/store/c9/c0/b0/u0/p1/v0/s1/t0/u0/i1/ALL.html';
    loadPageHttp(url).then(function (d) {
      let pushNovel = [];
      $ = cheerio.load(d);
      $(".bookbox").each(function (index) {
        // 创建一个数组
        let CarouselObj = {}
        // 新书封面
        CarouselObj.novelImg = $('.bookbox>.bookimg>a>img').eq(index).attr('src');
        // 新书名字
        CarouselObj.novelName = $('.bookbox>.bookimg>a>img').eq(index).attr('alt');
        // 新书页面
        CarouselObj.novelUrl = $('.bookbox>.bookimg>a').eq(index).attr('href');
        if (pushNovel.length < 8) {
          pushNovel.push(CarouselObj);
        }
      })
      res.json({
        code: 'U0001',
        pushNovel
      })
    });
  })

  // 主页爬取的章节
  app.post('/goDetailsAll', (req, res) => {
    var url = req.body.url;
    loadPageHttp(url).then(function (d) {
      let novelAll = [];
      $ = cheerio.load(d);
      // 小说的详情页链接
      let novelHref = url;
      // 小说的封面
      let novelImg = $('.book-img>img').attr('src');
      // 小说的名字
      let novelText = $('.book-name').html();
      // 小说作者
      let novelAuthor = $('.au-name>a').html();
      // 小说简介
      let novelMedium = $('.book-dec>p').html();
      if (novelHref) {
        novelAll.push({
          novelHref,
          novelImg,
          novelText,
          novelAuthor,
          novelMedium
        });
      }
      res.json({
        code: 'U0001',
        novelAll
      })
    });
  })
}


// 49.233.136.240:3003/